package com.szrt.day20170415.ch04;

public class PetDaoImpl implements  PetDao {

	@Override
	public boolean addPet(PetShop huayun, Pet pet) {
		
		boolean flag=false;
		
		//1 得到放置宠物的笼子
		Pet[] pets = huayun.getPets();
		
		int counter=0;
		for(int index=0; index<pets.length;index++){
			Pet chongwu = pets[index];
			if(chongwu == null){
				break;
			}else{
				counter++;
			}
		}
		
		//counter 宠物的下标
		if(counter<=pets.length-1){
			
			pets[counter]=pet;
			flag=true;
		}else{
			System.out.println("满了....");
		}
		
		
		//2 看笼子满了没有
		
		//3 把宠物放进去
		
		return flag;
		
	}

	
	/**
	 * 根据宠物的名字进行查找  如果有 直接返回这只宠物  如果没有null
	 * @param huayun
	 * @param petName
	 * @return
	 */
	@Override
	public Pet findPetByName(PetShop huayun, String petName) {
		//1 根据已知的huayun拿到宠物笼子=数组
		Pet[] pets = huayun.getPets();
		
		/*for(int index =0; index<pets.length;index++){
			Pet pet = pets[index];
		}*/
		
		for(Pet pet : pets){
			
			//拿到宠物的名字  为什么没有? 重点中的重点
			String mingzi = pet.getName();
			if(mingzi.equals(petName)){
				//找到了
				System.out.println("找到了");
				return pet;
			}
			
		}
		
		//2 遍历数组   拿到1只宠物  拿到宠物的名字 mingzi  == petName
		return null;
	}

	/**
	 * 根据宠物的年龄来查找符合要求的宠物s
	 * @param huayun  宠物商店
	 * @param age     年龄
	 * @return
	 */
	@Override
	public Pet[] findPetsByAge(PetShop huayun, int age) {
		
		Pet[] pets = huayun.getPets();
		
		Pet[] jieguo=null;
		
		int counter=0;
		//1 准备一个多大的笼子来装?
		for(int index =0; index<pets.length;index++){
			//拿到具体的某只宠物
			Pet pet = pets[index];
			
			//如果pet不是为null 才能比较
			if(pet != null){
				//拿到宠物的年龄  重点代码
				int nl = pet.getAge();
				
				if(nl == age){
					//找到了
					counter++;
				}
			}
		}
		
		//counter的值=2 等于我们要的数组的长度
		jieguo = new Pet[counter];
		
		
		counter =0;
		
		//2 遍历笼子pets 把符合条件的宠物都加进去
		for(Pet pet:pets){
			if(pet != null){
				//拿到宠物的年龄  重点代码
				int nl = pet.getAge();
				
				if(nl == age){
					//找到了 加入到新数组中去
					jieguo[counter]=pet;
					counter++;
				}
			}
			
		}
		return jieguo;
	}

}
